package modelo.tablero;

/**
 * La dirección se toma en base a las piezas blancas. Es decir, arriba es para donde avanzan las blancas.
 *
 * @author Victor Del Rio
 */
public enum Direccion {

	ARRIBA          (new Coordenada( 1,  0)),
	ARRIBA_IZQUIERDA(new Coordenada( 1, -1)),
	IZQUIERDA       (new Coordenada( 0, -1)),
	ABAJO_IZQUIERDA (new Coordenada(-1, -1)),
	ABAJO           (new Coordenada(-1,  0)),
	ABAJO_DERECHA   (new Coordenada(-1,  1)),
	DERECHA         (new Coordenada( 0,  1)),
	ARRIBA_DERECHA  (new Coordenada( 1,  1));
	
	
	private Coordenada posicionRelativa;
	
	private Direccion(Coordenada posicionRelativa) {
		this.posicionRelativa = posicionRelativa;
	}
	
	public Coordenada getCoordenada(Coordenada coordenadaDeReferencia) {
		return coordenadaDeReferencia.sumarCon(this.posicionRelativa);
	}
	
}
